package cn.wolfcode.education.util;


import cn.wolfcode.education.domain.Menu;

import java.util.Iterator;
import java.util.List;

//菜单工具
public class MenuUtil {
    public static final String MENUS_IN_SESSION = "menus_in_session";

    //过滤出 allMenus 中不包含  ids 的元素
    public static void filterMenu(List<Menu> allMenus, List<Long> ids) {
        if(allMenus == null || allMenus.size() == 0)return;

        //获取迭代器
        Iterator<Menu> it = allMenus.iterator();
        while (it.hasNext()){
            //获取每一个菜单元素
            Menu menu = it.next();

            //如果当前菜单的id,不包含在  用户的ids里面,直接删除
            if(!ids.contains(menu.getId())){
                it.remove();
            }else{
                List<Menu> childrens = menu.getChildren();
                //判断当前菜单的子菜单是否包含在 ids ,如果不包含的,执行删除
                filterMenu(childrens,ids);
            }
        }
    }
}
